37b6f9edf219fe10152ab99016828ef9bac528ac,sketches/src/main/java/com/yahoo/sketches/theta/IntersectionImpl.java,IntersectionImpl,heapifyInstance,#Memory#number#,123

Before Change


    final long memAdd = srcMem.getCumulativeOffset(0L);

    //Get Preamble
    final int preLongsMem = extractPreLongs(memObj, memAdd);
    final int serVer = extractSerVer(memObj, memAdd);
    final int famID = extractFamilyID(memObj, memAdd);
    //Note: Intersection does not use lgNomLongs (or k), per se.
    final int lgArrLongs = extractLgArrLongs(memObj, memAdd); //current hash table size
    final int flags = extractFlags(memObj, memAdd);
    //seedHash loaded and checked in private constructor
    final int curCount = extractCurCount(memObj, memAdd);
    final long thetaLong = extractThetaLong(memObj, memAdd);

After Change


    final int flags;
    final int curCount;
    final long thetaLong;
    if (srcMem.isReadOnly() && !srcMem.isDirect()) {
      preLongsMem = srcMem.getByte(PREAMBLE_LONGS_BYTE) & 0X3F;
      serVer = srcMem.getByte(SER_VER_BYTE) & 0XFF;
      famID = srcMem.getByte(FAMILY_BYTE) & 0XFF;
      lgArrLongs = srcMem.getByte(LG_ARR_LONGS_BYTE) & 0XFF;
      flags = srcMem.getByte(FLAGS_BYTE) & 0XFF;
      curCount = srcMem.getInt(RETAINED_ENTRIES_INT);
      thetaLong = srcMem.getLong(THETA_LONG);
    } else {
      final Object memObj = srcMem.array(); //may be null
      final long memAdd = srcMem.getCumulativeOffset(0L);

      preLongsMem = extractPreLongs(memObj, memAdd);
      serVer = extractSerVer(memObj, memAdd);
      famID = extractFamilyID(memObj, memAdd);
      lgArrLongs = extractLgArrLongs(memObj, memAdd);
      flags = extractFlags(memObj, memAdd);
      curCount = extractCurCount(memObj, memAdd);
      thetaLong = extractThetaLong(memObj, memAdd);
    }